/*
 * Version.java
 *
 *  created: 3.8.2011
 *  charset: UTF-8
 *  license: MIT (X11) (See LICENSE file for full license)
 */
package cz.mp.util.app;

/**
 * Třída {@code Version} získá informace o verzi z verzí definovaných v 
 * manifestu JAR souboru.
 * 
 * @author Martin Pokorný
 * @version 0.1
 * @see Package#getSpecificationVersion()
 * @see Package#getImplementationVersion()
 */
public class Version {

    /** Číslo verze. */
    private String specificationVersion = "DEVEL";
    /** Číslo sestavení nebo buildu. */
    private String implementationVersion = "";
    
    /**
     * 
     * @param mainPackage  (např. {@code MyClass.class.getPackage()})
     */
    public Version(Package mainPackage) {
        String specVer = mainPackage.getSpecificationVersion();
        if (specVer != null) {
            specificationVersion = specVer;
        }
        
        String implVer = mainPackage.getImplementationVersion();
        if (implVer != null) {
            implementationVersion = implVer;
        }
    }

    /**
     * 
     * @return {@code specificationVersion (implementationVersion)}
     *      nebo jen {@code specificationVersion}, pokud není definována
     *      {@code implementationVersion}
     */
    @Override
    public String toString() {
        if (implementationVersion.length() > 0) {
            return specificationVersion + " (" + implementationVersion + ")";
        }
        return specificationVersion;
    }
    
    /**
     * 
     * @return 
     */
    public String getSpecificationVersion() {
        return specificationVersion;
    }

    /**
     * 
     * @return 
     */
    public String getImplementationVersion() {
        return implementationVersion;
    }
    
}   
